///在这些示例中，我使用 Dart 的扩展函数来模拟 Kotlin 的 let、run、also
///和 apply 函数的行为。虽然语法和特性不同，但这些扩展函数在 Flutter
///中可以提供一些类似的便利性和清晰性。需要注意的是，Dart 的语法和设计在某些方面与 Kotlin 有所不同，
///因此实现方式可能会有一些差异。
///1. let 函数：
extension LetExtension<T> on T {
  R let<R>(R Function(T it) block) {
    return block(this);
  }
}
///3. also 函数：
extension AlsoExtension<T> on T {
  T also(void Function(T it) block) {
    block(this);
    return this;
  }
}
// void main() {
//   var result = "Hello, World!".let((it) {
//     // 在这里执行操作
//     return "Result is $it";
//   });
//
//   print(result);
// }
///2. run 函数：
// extension RunExtension<T> on T {
//   R run<R>(R Function(T it) block) {
//     return block(this);
//   }
// }

// void main() {
//   var result = "Hello, World!".run((it) {
//     // 在这里执行操作
//     return it.length;
//   });
//
//   print(result);
// }

// class Person{
//   Person(this.name, this.age);
//    String name;
//    String age;
// }
// void main() {
//   var person = Person('sa','12')..also((it) {
//     it.name = "John";
//     it.age = '30';
//   }).also((it) {
//     it.name = "111";
//     it.age = '111';
//   });
//
//   print('Name: ${person.name}, Age: ${person.age}');
// }
///4. apply 函数：
// extension ApplyExtension<T> on T {
//   T apply(void Function(T it) block) {
//     block(this);
//     return this;
//   }
// }

// void main() {
//   var person = Person().apply((it) {
//     it.name = "John";
//     it.age = 30;
//   });
//
//   print('Name: ${person.name}, Age: ${person.age}');
// }

// extension WithExtension<T> on T {
//   R withFunction<R>(R Function(T it) block) {
//     return block(this);
//   }
// }

// class Person {
//   String name = '';
//   int age = 0;
// }
//
// void main() {
//   var person = Person().withFunction((it) {
//     it.name = 'John';
//     it.age = 30;
//     return it;
//   });
//
//   print('Name: ${person.name}, Age: ${person.age}');
// }


